home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / arexx / ole1v10a.lha / OLE_System / ole / CheckPRTSetup.ole < prev    next >
Encoding:
Text File  |  1995-02-10  |  4.0 KB  |  206 lines

  1. /*
  2.  * CheckPRTSetup.ole
  3.  *
  4.  * USAGE: CheckPRTSetup.ole
  5.  *
  6.  * I wrote this script remembering another for LaTeX that realize the same
  7.  * function.
  8.  *
  9.  * HISTORY:
  10.  * v1.01    a few bug fixed
  11.  *
  12.  * v1.02    added the support for the progress indicator
  13.  *
  14.  * v1.03    aligned with the new server design v1.10
  15.  *
  16.  * $(C): (1994, Rocco Coluccelli, Bologna)
  17.  * $VER: CheckPRTSetup.ole 1.03 (30.Nov.1994)
  18.  */
  19.  
  20. OPTIONS RESULTS
  21.  
  22. PARSE ARG oleclip
  23. PARSE VALUE GETCLIP(oleclip) WITH jobID modID box.left box.top char.w char.h olewin oleport olehost userscreen userport olepipe locale config .
  24.  
  25. IF ~SHOW('C',config) THEN DO
  26.     check.density = 1
  27.     check.colors = 1
  28.     END
  29.  
  30. ELSE
  31.     PARSE VALUE GETCLIP(config) WITH check.density','check.colors','
  32.  
  33.  
  34. ADDRESS VALUE oleport
  35.  
  36. IF OPENPORT(olehost) == NULL() THEN DO
  37.     ERROR jobID modID 1 olehost
  38.     SETJOB jobID 'end'
  39.     EXIT 10
  40.     END
  41.  
  42. st = GUIGads()
  43. DO UNTIL st = 'end'
  44.  
  45.     CALL WAITPKT(olehost)
  46.     pkt = GETPKT(olehost)
  47.  
  48.     IF pkt == NULL() THEN ITERATE
  49.  
  50.     PARSE VALUE GETARG(pkt) WITH cmd argv .
  51.     PARSE VALUE GETARG(pkt,1) WITH n0 .
  52.  
  53.     SELECT
  54.  
  55.         WHEN cmd = 'CHECK' THEN DO
  56.             check.argv = ~check.argv
  57.             g_str.n0 = check.argv
  58.             CALL Gadgets(2,n0)
  59.             CALL SETCLIP(config,check.density','check.colors',')
  60.         END
  61.  
  62.         WHEN cmd = 'UNICONIFY' THEN
  63.             CALL Gadgets(8,1,g_gads)
  64.  
  65.         WHEN cmd = 'HELP' THEN
  66.             ABOUT jobID modID 'HELP' || st
  67.  
  68.         WHEN cmd = 'START' | cmd = 'QUIT' THEN st = 'end'
  69.  
  70.         OTHERWISE NOP
  71.     END
  72.  
  73.     CALL REPLY(pkt,0)
  74.  
  75. END
  76.  
  77. CALL CLOSEPORT(olehost)
  78.  
  79. IF cmd ~= 'QUIT' THEN DO
  80.     CALL SETCLIP(olepipe,check.density check.colors)
  81.     SETJOB jobID modID + 1
  82.     COMPLETE jobID modID 1
  83.     END
  84.  
  85. EXIT 0
  86.  
  87.  
  88. GetLocale: PROCEDURE EXPOSE locale
  89. ARG strID
  90.  
  91.     strID = 'þ'strID'þ'; PARSE VALUE GETCLIP(locale) WITH (strID)text'Þ'
  92.  
  93. RETURN text
  94.  
  95.  
  96. GUIGads:
  97.  
  98.     g_offx. = 2;    g_offx.1 = 0;            g_offx.3 = 2
  99.     g_offy. = 2;    g_offy.1 = char.h + 1;    g_offy.3 = 3
  100.     g_wid. = 8;                g_wid.1 = 0;            g_wid.3 = 12
  101.     g_hei. = char.h + 4;    g_hei.1 = char.h + 1;    g_hei.3 = char.h + 6
  102.     g_sx = char.w % 2;    g_sy = char.h % 4
  103.     g_onoff. = 0
  104.  
  105.     box.left = box.left + g_sx; box.top = box.top + 2 * g_sy
  106.     box.w = 26 * char.w
  107.  
  108.     n = 1; nmain = 1
  109.  
  110.     x = box.left; y = box.top
  111.     CALL IniGad(4,1,6,'CHECK DENSITY%1' n,check.density,GetLocale(1))
  112.     y = y + g_hei.3 + g_sy
  113.     CALL IniGad(4,1,6,'CHECK COLORS%1' n,check.colors,GetLocale(2))
  114.  
  115.     y = y + g_hei.3 + 2 * g_sy
  116.     CALL IniGad(2,3,0,'HELP',GetLocale(3))
  117.     g_gads = IniGad(2,1,0,'START %1' n,GetLocale(4))
  118.  
  119.     box.h = y + g_hei.2 + 2 * g_sy - box.top
  120.     WINDOW jobID modID (box.w + 2 * g_sx) (box.h + 2 * g_sy) 1 1
  121.     CALL Gadgets(4,1,g_gads)
  122.  
  123. RETURN nmain
  124.  
  125.  
  126. Gadgets:
  127.  
  128.     IF ARG(1) < 4 THEN
  129.         DO i = 2 TO ARG(); n = ARG(i)
  130.             IF ARG(1) ~= 1 THEN CALL DelGad(n,g_type.n)
  131.             IF ARG(1) ~= 3 THEN CALL NewGad(n,g_type.n)
  132.         END
  133.  
  134.     ELSE IF ARG(1) < 7 THEN
  135.         DO n = ARG(2) TO ARG(3)
  136.             IF ARG(1) ~= 4 THEN CALL DelGad(n,g_type.n)
  137.             IF ARG(1) ~= 6 THEN CALL NewGad(n,g_type.n)
  138.         END
  139.  
  140.     ELSE IF ARG(1) = 8 THEN
  141.         DO n = ARG(2) TO ARG(3)
  142.             IF g_onoff.n THEN CALL NewGad(n,g_type.n)
  143.         END
  144.  
  145.     ELSE DO
  146.         DO n = ARG(2) TO ARG(3)
  147.             g_onoff.n = 0
  148.             IF g_type.n ~= 1 THEN CALL RemoveGadget(olewin,GAD.n)
  149.         END
  150.         CALL SetAPen(olewin,0)
  151.         CALL RectFill(olewin,box.left,box.top,box.left + box.w,box.top + box.h)
  152.         CALL RefreshGadgets(olewin)
  153.         END
  154. RETURN
  155.  
  156.  
  157. DelGad:
  158. PARSE ARG n,t
  159.  
  160.     g_onoff.n = 0
  161.  
  162.     IF t ~= 1 THEN CALL RemoveGadget(olewin,GAD.n)
  163.  
  164.     x = g_xpos.n - g_offx.t; y = g_ypos.n - g_offy.t
  165.     CALL SetAPen(olewin,0)
  166.     CALL RectFill(olewin,x,y,x + g_len.n,y + g_hei.t)
  167.  
  168. RETURN
  169.  
  170.  
  171. NewGad:
  172. PARSE ARG n,t
  173.  
  174.     g_onoff.n = 1
  175.  
  176.     IF t = 2 THEN
  177.         CALL AddGadGet(olewin,g_xpos.n,g_ypos.n,GAD.n,g_str.n,g_msg.n)
  178.  
  179.     ELSE IF t = 4 THEN
  180.         CALL AddGadGet(olewin,g_xpos.n,g_ypos.n,GAD.n,D2C(32 + g_str.n * 183),g_msg.n)
  181.  
  182.     ELSE DO
  183.         CALL SetAPen(olewin,1)
  184.         CALL Move(olewin,g_xpos.n,g_ypos.n)
  185.         CALL Text(olewin,g_str.n)
  186.         END
  187. RETURN
  188.  
  189.  
  190. IniGad:
  191. PARSE ARG t,na,nx,g_msg.n,g_str.n,var
  192.  
  193.     x = x + nx * g_sx
  194.  
  195.     g_len.n = LENGTH(g_str.n) * char.w + g_wid.t
  196.  
  197.     IF na > 0 THEN x = box.left + (na - 1) * (box.w - g_len.n) % 2 + nx * g_sx
  198.  
  199.     g_xpos.n = x + g_offx.t; g_ypos.n = y + g_offy.t; g_type.n = t
  200.     x = x + g_len.n
  201.     n = n + 1
  202.  
  203.     IF t = 4 THEN CALL IniGad(1,0,1,,var)
  204.  
  205. RETURN n - 1
  206.